package com.ruoyi.system.service;

import com.ruoyi.system.domain.GzdsQuestionInfo;

import java.util.List;

/**
 * 试题管理Service接口
 *
 * @author ruoyi
 * @date 2021-04-20
 */
public interface IGzdsQuestionInfoService
{
    /**
     * 查询试题管理
     *
     * @param questionId 试题管理ID
     * @return 试题管理
     */
    public GzdsQuestionInfo selectGzdsQuestionInfoById(Long questionId);

    /**
     * 查询试题管理列表
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 试题管理集合
     */
    public List<GzdsQuestionInfo> selectGzdsQuestionInfoList(GzdsQuestionInfo gzdsQuestionInfo);

    /**
     * 查询试题管理列表（初级）
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 试题管理集合
     */
    public List<GzdsQuestionInfo> selectGzdsQuestionInfoZero();

    /**
     * 查询试题管理列表（初级）
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 试题管理集合
     */
    public List<GzdsQuestionInfo> selectGzdsQuestionInfoOne();

    /**
     * 查询试题管理列表（初级）
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 试题管理集合
     */
    public List<GzdsQuestionInfo> selectGzdsQuestionInfoTwo();

    /**
     * 查询试题管理列表（中级）
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 试题管理集合
     */
    public List<GzdsQuestionInfo> selectGzdsQuestionInfoMidZero();


    /**
     * 查询试题管理列表（中级）
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 试题管理集合
     */
    public List<GzdsQuestionInfo> selectGzdsQuestionInfoMidOne();


    /**
     * 查询试题管理列表（中级）
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 试题管理集合
     */
    public List<GzdsQuestionInfo> selectGzdsQuestionInfoMidTwo();

    /**
     * 查询试题管理列表（高级）
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 试题管理集合
     */
    public List<GzdsQuestionInfo> selectGzdsQuestionInfoMaxZero();

    /**
     * 查询试题管理列表（高级）
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 试题管理集合
     */
    public List<GzdsQuestionInfo> selectGzdsQuestionInfoMaxOne();

    /**
     * 查询试题管理列表（高级）
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 试题管理集合
     */
    public List<GzdsQuestionInfo> selectGzdsQuestionInfoMaxTwo();


    /**
     * 新增试题管理
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 结果
     */
    public int insertGzdsQuestionInfo(GzdsQuestionInfo gzdsQuestionInfo);

    /**
     * 修改试题管理
     *
     * @param gzdsQuestionInfo 试题管理
     * @return 结果
     */
    public int updateGzdsQuestionInfo(GzdsQuestionInfo gzdsQuestionInfo);

    /**
     * 批量删除试题管理
     *
     * @param questionIds 需要删除的试题管理ID
     * @return 结果
     */
    public int deleteGzdsQuestionInfoByIds(Long[] questionIds);

    /**
     * 删除试题管理信息
     *
     * @param questionId 试题管理ID
     * @return 结果
     */
    public int deleteGzdsQuestionInfoById(Long questionId);

    /**
     * 导入试题数据
     *
     * @param questionInfoList 试题数据列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importQuestion(List<GzdsQuestionInfo> questionInfoList, Boolean isUpdateSupport, String operName);
}
